home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / e_update_v3.2e / easygui / plugin_gradient.e < prev    next >
Text File  |  1994-11-08  |  2KB  |  67 lines

  1. -> A slightly more useful plugin: the BOOPSI gradientslider.gadget as plugin
  2.  
  3. OPT OSVERSION=37
  4.  
  5. MODULE 'tools/EasyGUI', 'tools/exceptions', 'intuition/intuition', 'intuition/gadgetclass',
  6.        'intuition/icclass', 'gadgets/gradientslider'
  7.  
  8. OBJECT gradientplugin OF plugin
  9.   grad:PTR TO gadget
  10.   gradbase
  11.   curval
  12. ENDOBJECT
  13.  
  14. PROC gradientplugin() OF gradientplugin
  15.   self.gradbase:=OpenLibrary('gadgets/gradientslider.gadget',39)
  16.   IF self.gradbase=NIL THEN Raise("grad")
  17. ENDPROC
  18.  
  19. PROC end() OF gradientplugin
  20.   IF self.gradbase THEN CloseLibrary(self.gradbase)
  21. ENDPROC
  22.  
  23. PROC min_size(fh) OF gradientplugin IS 100,30
  24. PROC will_resize() OF gradientplugin IS RESIZEX
  25.  
  26. PROC render(x,y,xs,ys,w) OF gradientplugin
  27.   self.grad:=NewObjectA(NIL,'gradientslider.gadget',
  28.     [GA_TOP,y,GA_LEFT,x,GA_WIDTH,xs,GA_HEIGHT,ys,GRAD_CURVAL,self.curval,
  29.      GA_ID,1,GRAD_PENARRAY,[1,2,-1]:INT,GRAD_KNOBPIXELS,16,0])
  30.   IF self.grad=NIL THEN Raise("grad")
  31.   AddGList(w,self.grad,-1,1,NIL)
  32.   RefreshGList(self.grad,w,NIL,1)
  33. ENDPROC
  34.  
  35. PROC clear_render(win:PTR TO window) OF gradientplugin
  36.   IF self.grad
  37.     RemoveGList(win,self.grad,1)
  38.     DisposeObject(self.grad)
  39.   ENDIF
  40. ENDPROC
  41.  
  42. PROC message_test(imsg:PTR TO intuimessage,win:PTR TO window) OF gradientplugin IS
  43.   imsg.class=IDCMP_MOUSEBUTTONS ->??
  44.  
  45. PROC message_action(win:PTR TO window) OF gradientplugin
  46.   DEF val=0
  47.   GetAttr(GRAD_CURVAL,self.grad,{val})
  48.   self.curval:=val
  49. ENDPROC TRUE
  50.  
  51. PROC main() HANDLE
  52.   DEF gp=NIL:PTR TO gradientplugin
  53.   easygui('BOOPSI in EasyGUI!',
  54.     [ROWS,
  55.       [TEXT,'from sys:classes/gadgets...',NIL,TRUE,15],
  56.       [PLUGIN,{gradaction},NEW gp.gradientplugin()],
  57.       [SBUTTON,0,'sure']
  58.     ])
  59. EXCEPT
  60.   END gp
  61.   report_exception()
  62. ENDPROC
  63.  
  64. PROC gradaction(i,gp:PTR TO gradientplugin)
  65.   WriteF('gradient value = \z$\h[4]\n',gp.curval)
  66. ENDPROC
  67.